/* OnLoad
 * ****************************************************************************/
var Gmap_API = false;
$(document).ready(function(){
    $.history.init(pageload,"");
    if(!location.hash) location.hash = 'inicio';
});

function pageload(hash){
    if(hash) {
        document.title = ".: SIGSI :.    - "+hash.toUpperCase()+" -";
        fun = hash + 'Menu';
        if (typeof(window[fun]) === "function") window[fun]();
        else {
            alert("Error. Funcionalidad no implementada.\n$>" + fun);
            inicioMenu();
        }
    }
    return false;
}

/* Actions-Catch
 * ****************************************************************************/
$('.menuItem').live('click',function(){
    id = $(this).attr('id');
    $.history.load(id);
});
$('#cancelLogin').live('click',logoutMenu);
$('#userInfo').live('click',function(){
    $('#center').load('Templates/UserInfo.jsp');
});

/* Interface-Loaders
 * ****************************************************************************/
function loginMenu(){
    document.title = ".: SIGSI :.";
    $('#sidebar').load('Templates/bienvenidaSlide.jsp');
    $.ajax({
        type: "POST",
        url: "getToken.do",
        success: function(answer){
            $('#center').html(answer);
        }
    });

}
function logoutMenu(){
    $('#userInfo').load("Templates/Logout.jsp");
    location.hash = 'inicio';
    //inicioMenu();
    return false;
}
function inicioMenu(){
    document.title = ".: SIGSI :.";
    $('#center').load('Templates/bienvenida.jsp');
    $('#sidebar').load('Templates/bienvenidaSlide.jsp');
}
function solicitudesMenu(){
    $('.current_menu_item').removeClass('current_menu_item');
    $('#menu2').load('Modulo3/Templates/menuSolicitudes.jsp');
    $('#sidebar').load('Modulo3/Templates/infoSolicitudes.jsp');
    $('#center').load('Modulo3/gestionarSolicitud.jsp');
    return false;
}
function novedadesMenu(){
    $('.current_menu_item').removeClass('current_menu_item');
    $('#novedades').addClass('current_menu_item');
    $('#menu2').load('Modulo1/Templates/menuNovedades.jsp');
    novedadesInicio();
    return false;
}
function mapasMenu(){
    $('.current_menu_item').removeClass('current_menu_item');
    $('#mapas').addClass('current_menu_item');
    $('#menu2').load('Modulo2/Templates/menuMapas.jsp');
    mapaInicio();
    return false;
}
function shaMenu(){
    $('.current_menu_item').removeClass('current_menu_item');
    $('#sha').addClass('current_menu_item');
    $('#menu2').load('Modulo3/Templates/menuSHA.jsp');
    shaInicio();
    return false;
}
function apoyoMenu(){
    $('.current_menu_item').removeClass('current_menu_item');
    $('#apoyo').addClass('current_menu_item');
    $('#menu2').load('Modulo4/Templates/menuApoyo.jsp');
    apoyoInicio();
    return false;
}
function configuracionMenu(){
    $('.current_menu_item').removeClass('current_menu_item');
    $('#configuracion').addClass('current_menu_item');
    $('#menu2').load('ModuloConfiguracion/Templates/menuConfiguracion.jsp');
    configuracionInicio();
    return false;
}
/* Funciones de Inicio
 * ***************************************************************************/
function novedadesInicio(){
    $('.current_menu2_item').removeClass('current_menu2_item');
    $('#novedadesInicio').addClass('current_menu2_item');
    $('#center').load('Modulo1/Templates/principalNovedades.jsp');
    $('#sidebar').load('Modulo1/Templates/infoNovedades.jsp');
    return false;
}
function mapaInicio(){
    $('.current_menu_item2').removeClass('current_menu_item2');
    $('#mapaInicio').addClass('current_menu_item2');
    $('#sidebar').load('Modulo2/Templates/infoMapas.jsp');
    $('#center').load('Modulo2/Templates/inicioMapas.jsp');
    return false;
}
function shaInicio(){
    $('.current_menu2_item').removeClass('current_menu2_item');
    $('#inicioSHA').addClass('current_menu2_item');
    $('#sidebar').load('Modulo3/Templates/infoSHA.jsp');
    $('#center').load('Modulo3/Templates/principalSHA.jsp');
    return false;
}
function apoyoInicio(){
    $('.current_menu2_item').removeClass('current_menu2_item');
    $('#InicioApoyo').addClass('current_menu2_item');
    $('#sidebar').load('Modulo4/Templates/infoApoyo.jsp');
    $('#center').load('Modulo4/Templates/principalApoyo.jsp');
    return false;
}
function configuracionInicio(){
    $('.current_menu2_item').removeClass('current_menu2_item');
    $('#InicioConfiguracion').addClass('current_menu2_item');
    $('#sidebar').load('ModuloConfiguracion/Templates/infoConfiguracion.jsp');
    $('#center').load('ModuloConfiguracion/Templates/principalConfiguracion.jsp');
    return false;
}



/* General Use
 * ****************************************************************************/

/* Envia los datos de un formulario a un action mediante ajax y luego muestra la respuesta.
 * @param idForm Es el id del formulario a enviar.
 * @param action Nombre logico de la accion a ejecutar. (Sin el .do)
 * @param idScope Es el id del elememto de la pagina donde incrustar la respuesta de la accion.
 **/
function sendForm(idForm,action,idScope){
    $.ajax({
        type: "POST",
        url: action+".do",
        data: $('#'+idForm).serialize(),
        success: function(answer){
            $('#'+idScope).html(answer);
        }
    });
    return false;
}
//Esta funcion es para poder pasar parametros a traves del URL
function sendFormParam(idForm,action,idScope){
    $.ajax({
        url: action,
        data: $('#'+idForm).serialize(),
        success: function(answer){
            $('#'+idScope).html(answer);

        }
    });
    return false;
}

function login(token){
    pwd = $('#pass').val();
    pwdE = Encriptar(token+""+Encriptar(pwd));
    $('#password').val(pwdE);
    $.ajax({
        type: "POST",
        url: "AutenticarUsuario.do",
        data: $('#loginForm').serialize(),
        success: function(answer){
            $('#center').html(answer);
        }
    });
    return false;
}

function cambiarPassword(){
    pwd = $('#pwdActual').val();
    pwd2 = $('#pwdNueva').val();
    pwd3 = $('#pwdNueva2').val();

    if(pwd2 != pwd3){
        $('.error').html("Las contraseñas no coinciden.");
        $('#pwdNueva').focus();
    } else if(pwd == pwd2){
        $('.error').html("Su nueva contraseña no puede ser igual a la anterior.");
        $('#pwdNueva').focus();
    } else {
        $('#pwdActual').val(Encriptar(pwd));
        $('#pwdNueva').val(Encriptar(pwd2));
        $('#pwdNueva2').val(Encriptar(pwd3));
        sendForm('cambiarPwdForm', 'cambiarPassword', 'center');
    }
    return false;
}
    
function listaSedes(selected){
    $.getJSON("listaSedes.do",
        function(data) {
            $('#Sedes').html("<option value=''>-</option>");
            $.each(data.Sedes, function(i,item){
                string = "<option value='"+item.nombre+"' id='Sede_"+item.nombre+"'>"+item.nombre+"</option>";
                $('#Sedes').append(string);
            });
            if(selected) $('#Sede_'+selected).attr('selected',true);
        });
}

function listaAreas(sede, selected){
    $.getJSON("listaAreas.do",{nombre_sede: sede},
        function(data) {
            $('#Areas').html("<option value=''>-</option>");
            $.each(data.consultarArea1, function(i,item){
                string = "<option value='"+item.id_area+"' id='Area_"+item.id_area+"'>"+item.descripcion+"</option>";
                $('#Areas').append(string);
            });
            if(selected) $('#Area_'+selected).attr('selected',true);
        });
}

function listEspacios(sede,selected){
    $.getJSON("listaEspaciosAction.do?sede="+sede,
        function(data) {
            $('#Espacios').html("<option value=''>-</option>");
            $('#Pisos').html("<option value=''>-</option>");
            if(data.espacios == null || data.espacios.length <= 0){
                $('#Espacios').html("<option value=''>N/A</option>").attr('disabled',true);
            }
            else {
                $.each(data.espacios, function(i,item){
                    string = "<option value='"+item.nombre+"' id='Espacios_"+item.nombre+"' class='"+item.tipo+"'>"+item.nombre+"</option>";
                    $('#Espacios').append(string).attr('disabled',false);
                });
                if(selected) $('#Espacios_'+selected).attr('selected',true);
            }
        });
}

function listaCargos(selected){
    $.getJSON("consultarCargo.do",
        function(data) {
            $('#Cargo').html("<option value=''>-</option>");
            $.each(data.cargos , function(i,item){
                $('#Cargo').append("<option value='"+item.nombre_cargo+"' id='Cargo_"+item.nombre_cargo+"'>"+item.nombre_cargo+"</option>")
            });
            if(selected) $('#Cargo_'+selected).attr('selected',true);
        });
}

function listCargosSede(sede){
    $('#Cargo').html("<option value=''>-</option>");
    $('#Puestos').html("<option value=''>-</option>");
    $.getJSON("listarCargosSede.do?sede="+sede,
        function(data) {
            $.each(data.cargos , function(i,item){
                option = "<option value='"+item.nombre_cargo+"'>"+item.nombre_cargo+"</option>";
                $('#Cargo').append(option);
            });
        });
}

function listaPuestos(cargo, selected){
    $.getJSON("consultarPuestoTrabajo.do?nombre_cargo="+cargo,
        function(data) {
            $('#Puestos').html("<option value='' "+(!selected?"selected":"")+">-</option>");
            $.each(data.puestos, function(i,item){
                if(!selected && (item.nombre_pt==selected)) check = "selected"
                else check = "";
                option = "<option value='"+item.nombre_pt+"' "+check+">"+item.nombre_pt+"</option>";
                $('#Puestos').append(option);
            });
        });
}

function listaGrupos(sede){
    if(!sede) sede = "";
    $.getJSON("consultarGrupos.do?sede="+sede,
        function(data) {
            $('#Grupos').html("<option value='' selected>-</option>");
            $.each(data.Grupos, function(i,item){
                var string = "<option value='"+item.id_grupo+"'>"+item.id_grupo+" - "+item.sede+"</option>";
                $('#Grupos').append(string)
            });
        });
}

function listaHorarios(){
    $.getJSON("consultarHorarios.do", function(data) {
        $('#Horarios').html("<option value=''>-</option>");
        $.each(data.Horarios, function(i,item){
            string = "<option value='"+item.id_horario+"'>"+item.inicio+" - "+item.fin+"</option>";
            $('#Horarios').append(string)
        });
    });
}